package ooday04exercise;
//匿名内部类

public class AnonInnerClassDemo {
    public static void main(String[] args) {
        //1)创建了Aoo的一个派生类，但是没有名字
        //2)为该派生类创建了一个对象，名为o1,向上造型为Aoo类型
        //new Aoo(){};是在创建Aoo的派生类对象
        Aoo o1=new Aoo(){};

        //1)创建了Aoo的一个派生类，但是没有名字--又一个派生类了
        //2)为该派生类创建了一个对象，名为o2,向上造型为Aoo类型
        //3)大括号为派生类的类体
       Aoo o2=new Aoo(){};
       //1)创建了一个Boo的派生类，没有名字
        //2)为该派生类创建了一个对象o3,向上造型为Boo类型
        //3)大括号为派生类的类体
        int num=66;
        num=99;
     Boo  o3=new Boo(){
           void show(){
               System.out.println("showshow o3");
//               num=99;编译错误，匿名内部类中不能修改外面局部变量的值
           }
       };
     o3.show();//通过派生类对象访问派生类类体中的show()方法
     Boo  o4= new Boo(){
            void show(){
                System.out.println("showshow o4");
            }
        };
     o4.show();
    }
}
abstract class Boo {
    abstract void show();
}

class Aoo{

}
